A database system comprises one or more database servers that manage a database. A server, such as a database server, is a combination of integrated software components and an allocation of computational resources, such as memory, and processes on a computer for executing the integrated software components on a processor of the computer, the combination of the software and computational resources being dedicated to performing a particular function on behalf of one or more clients. Among other functions of database management, a database server governs and facilitates access to a particular database, processing requests by clients to access the database.
In a database system, end-users make row changes by submitting SQL (Structured Query Language) statements to a database system, which executes the statement. (Note, SQL as used herein refers not only to ANSI standards for SQL, but also proprietary forms and standards of SQL) Typically, when a SQL statement is executed, a database server parses and analyzes the statement to generate an execution plan. This plan may be cached and is re-used later when an identical statement is executed subsequently.
Within a database system, there are many internal software components or applications that change data in the database. Such components, like end-users, also issue SQL statements within the database system to make changes to the data. For example, in a replication sub-system, row changes made at the source database must be replicated at a destination database. Typically, the row changes are captured in a log. The log is read to construct SQL statements to issue to a destination database system to make the same changes at the destination database system.
To execute an SQL statement, the SQL statement is parsed and analyzed and an execution plan is generated. These operations entail a significant amount of processing. While such overhead may be avoided by using a cached execution plan, the execution plans can only be re-used for identical statements. It is therefore desirable to eliminate in another way the overhead attendant to making database changes.
The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.